○설계가 변경되어도 이를 잘 수용할 수 있도록 짧게 반복하면서 소프트웨어를 개발하는 방법 ○반복적이고 진화적인 프로세스와 유사하지만, 경험의 축적으로 나온 모델 ○소프트웨어 개발이 인력 집약적이라는 데 관심을 두고 사람과 팀 구성에 초점을 맞춤
ㄱ.통합 테스트 ㄴ.인수 테스트 ㄷ.단위 테스트 ㄹ.시스템 테스트
ㄱ.시스템의 컴파일 시 계층적 구조를 기술하는 다이어그램이다. ㄴ.시퀀스 다이어그램과 액티비티 다이어그램을 혼합한 다이어그램이다. ㄷ.하나의 클래스 실행 시 내부 구조를 상세하게 표현하고자 할 때 사용하는 복합 구조를 표현하는 다이어그램이다. A.인터랙션 오버뷰 다이어그램(Interaction Overview Diagram) B.컴포지트 스트럭처 다이어그램(Composite Structure Diagram) C.패키지 다이어그램(Package Diagram)
from abc import ABCMeta, abstractmethod class Order(metaclass=ABCMeta): @abstractmethod def execute(self): pass class BuyStockOrder(Order): def __init__(self, stock): self.stock = stock def execute(self): self.stock.buy() class SellStockOrder(Order): def __init__(self, stock): self.stock = stock def execute(self): self.stock.sell() class StockTrade: def buy(self): print(“You will buy stocks”) def sell(self): print(“You will sell stocks”) class Agent: def __init__(self): self.__orderQueue = [] def placeOrder(self, order): self.__orderQueue.append(order) order.execute() if __name__ == ‘__main__’: #Client stock = StockTrade() buyStock = BuyStockOrder(stock) sellStock = SellStockOrder(stock) #Invoker agent = Agent() agent.placeOrder(buyStock) agent.placeOrder(sellStock)
스프린트가 끝나는 시점이나 일정 주기로 수행한다. 이 활동을 통하여 프로젝트를 진행하는 과정에서 드러난 좋았던 점, 여러 가지 문제나 미진한 점 등을 도출한다. 이 활동을 통해 이미 설정된 프로세스로만 프로젝트를 진행하지 않고 프로세스를 지속적으로 개선하여 변화하는 비즈니스 환경에 보다 능동적으로 적응할 수 있도록 한다.
하나의 모듈을 테스트할 때 상위나 하위 모듈이 개발이 안 된 경우가 있다. 상위나 하위 모듈이 개발될 때까지 기다릴 수 없어 가상의 상위나 하위 모듈을 만들어 사용한다. 상위 모듈 역할을 하는 가상의 모듈을 ( )(이)라 하고 그 역할은 테스트할 모듈을 ( )하는 것이다. 반대로 하위 역할을 하는 모듈을 ( )(이)라 하고 인자를 통해 받은 값을 가지고 수행한 후 그 결과를 테스트할 모듈에 넘겨주는 역할을 한다.
Void printOwing(double amount) { printBanner(); System.out.println(“name:”+_name); System.out.println(“amount:”+_amount); }▼▼▼Void printOwing(double amount) { printBanner(); printDetails(amount); } Void printDetails(double amount) { System.out.println(“name:”+_name); System.out.println(“amount:”+_amount); }
<표 1> | ||||
---|---|---|---|---|
구분 | 항목 | 복잡도 | ||
단순 | 보통 | 복잡 | ||
1 | 입력(트랜잭션) | 3 | 4 | 6 |
2 | 출력(화면/양식) | 4 | 5 | 7 |
3 | 질의 | 2 | 4 | 6 |
4 | 파일 | 5 | 10 | 15 |
5 | 응용 인터페이스 | 4 | 7 | 10 |
<표 2> | ||
---|---|---|
특성 | 처리복잡도 | 비고 |
데이터 통신 | 5 | 0: 영향 없음 |
분산데이터 처리 | 2 | 1: 약간의 영향 |
처리속도 | 0 | 2: 어느 정도 영향 |
트랜잭션 처리 | 2 | 3: 보통 정도의 영향 |
하드웨어 이용 | 3 | 4: 중요한 영향 |
온라인 데이터 입력 | 0 | 5: 심각한 영향 |
온라인 갱신 정도 | 0 | |
사용자 편의성 | 2 | |
계산의 복잡성 | 2 | |
재사용성 | 2 | |
설치의 용이함 | 2 | |
운영의 용이함 | 0 | |
이식성 | 3 | |
유지 보수성 | 2 |
○첫 번째 열이 A 또는 B로 시작하고, 두 번째 열이 #이면 ‘출입가능’을 출력한다. ○첫 번째 열이 A 또는 B로 시작하지 않으면 ‘출입금지’로 출력한다. ○첫 번째 열이 A 또는 B로 시작하고, 두 번째 열이 #이 아니면 ‘비밀번호 오류’를 출력한다. ○A는 부장, B는 사원을 의미한다.
원인 | 결과 |
---|---|
1: 첫 번째 열이 A2: 첫 번째 열이 B3: 두 번째 열이 # | 101: ‘출입금지’ 출력102: ‘출입가능’ 출력103: ‘비밀번호 오류’ 출력 |